Long gone are the days of telephone party lines, used in the early days of telephone operations. Party lines made life interesting. Numerous users of telephones in their homes could selectively eaves drop on the conversations of others. Examples of party line activity have been presented extensively in movies, novels, and comedy skits, due to the unpredictable and undesirable characteristics of shared communication. The telephone industry worked hard to bring important improvements to telephone usage, such as the private phone line. Privacy in communications has become a highly valued concern of consumers. As communication has expanded beyond the phone line and into the virtual world of the Internet, a whole new set of complex problems are introduced in trying to facilitate private communication in a cost effective manner.
Private communication via network environments, such as the Internet, can be difficult to achieve. Current efforts include using, for example, Session Initiation Protocol (SIP) to effectively exchange keys while providing desirable aspects of the protocol, such as forking, re-targeting, request recursion, etc. and reducing undesirable aspects, such as exchanging keys with unintended parties, voice clipping, etc.
SIP is a rendezvous protocol for the Internet that was published as an Internet Engineering Task Force (IETF) standard in 1999, and further revised in June 2002. SIP uses well-know email-like identifiers to represent users, instead of using numeric identifiers. SIP is a text-based request-response protocol. An SIP environment includes user agents, proxy servers, redirect servers, and registrars. SIP user agents provide software programs that enable the rendezvous protocol when executed on a suitable electronic device, such as a computer, Internet phone, personal digital assistant (PDA), or any other suitable electronic device for transmitting and receiving media over an Internet connection.
Two types of SIP user agents are provided. The first type is a user agent client (UAC), which originates requests, such as, for example, a request to start a multimedia session. The second type is a user agent server (UAS), which accepts and acts upon a request from the UAC. Typically, a UAS will register with a registrar. Once registered, the current IP address of the UAS is bound to an email-like identifier. The email-like identifier is used to identify the UAS. SIP proxy servers use the UAS email-like identifier to route requests to a particular UAS from a UAC.
SIP proxy servers are intermediaries that provide critical services for SIP sessions, such as routing, authentication, and forking (creating a search tree in SIP). For example, a request to establish a session or INVITE is routed to a downstream UAS via a proxy server. The downstream UAS sends one or more provisional responses to the INVITE followed by exactly one final response. The responses traverse from the UAS to the UAC in reverse order over the same proxy chain as the request. A session is established when a UAC receives a final response from a UAS and sends out a new request known as an ACK. The ACK and any subsequent requests can flow directly from UAC to UAS, or vice versa, depending on the policy of the proxy server. Some proxies may choose to stay in the session such that all subsequent requests flow through them as illustrated, for example, in FIG. 1, as discussed below. However, media between UAC and UAS flows directly without being routed through one or more SIP proxy servers, as illustrated in FIG. 1. In other words, the SIP protocol is used to establish an initial rendezvous, whereas a different media stream with a different protocol is used for the exchange between UAC and UAS once the rendezvous is established. Because the protocols are different, providing security for the system as a whole is challenging.
Known key distribution protocols that attempt to address the security challenge of the system include, for example, ZRTP and DTLS-SRTP. DTLS-SRTP provides a reasonably strong security against attackers, and uses public-key infrastructure (PKI) which is both fiscally and computationally costly, ie several public key operations are required. ZRTP is a complex key distribution protocol with reasonable security. However, it is both expensive to implement and has subtle vulnerabilities.
Thus, known keying protocols, public and private have inherent drawbacks, such as cost and complexity, for SIP sessions.